Simulation of CURD 模拟CURD操作

    在服务端,我们要提供 REST 风格的 API。

    先创建一个用户对象 UserBean.java

    UserResource

    新建一个资源类 UserResource.java 。加注解用来说明 资源根路径是 users.

    添加

    1. private static Map<Integer,UserBean> userMap = new HashMap<Integer,UserBean>();

    用来在内存中存储数据。可以在 userMap 获取我们想要查询的数据。

    完整的代码如下:

    为了简单起见,我们约定 POST 就是处理新增,PUT 用来做修改,DELETE 删除,GET 就是查询。

    自此,服务端接口开发完毕。

    为了快速测试接口,可以用第三方 REST 客户端测试程序,我这里用的是 RESTClient 插件,可以在火狐中安装使用。

    1. {
    2. "userId": 1,
    3. "age": 28,
    4. "name": "waylau.com"
    5. }

    提示报错: 未支持媒体格式的错误。

    由于我们在新增的接口里面设置的是

    规定只接收 JSON 格式,而 默认的 “Conten-Type” 是“text/html”所以在还需要在 header 里设置一下 为 “application/json”:

    9. Simulation of CURD 模拟CURD操作 - 图2

    就可以了。我们在添加一个用户对象

    1. {
    2. "userId": 2,
    3. "name": "www.waylau.com"
    4. }

    响应的数据里面就能看到我们的添加的用户了。

    修改用户

    修改用户1 的数据:

    9. Simulation of CURD 模拟CURD操作 - 图4

    在返回的数据里面可以看到用户1 被修改

    在根据 ID 查询的接口里面

    1. @GET
    2. @Path("{id}")
    3. public UserBean getUserById(@PathParam("id") int id){
    4. UserBean u = userMap.get(id);
    5. return u;

    @Path("{id}")指 id 这个子路径是一个变量。我们查询用户1 时,要将用户 1 的 userId 放在请求的URI 里面http://localhost:8080/webapi/users/1

    删除用户

    与上面类似,也是用到了@Path("{id}")

    9. Simulation of CURD 模拟CURD操作 - 图6

    我们看到用户1被删除了。

    自此整个应用完成了。这个“用户管理”够简单吧~